import { Rule } from "./types";

export const Flake8AnnotationsRuleList: Rule[] = [
    {
        code: "ANN001",
        name: "missing-type-function-argument",
        descEn: "Missing type annotation for function argument {name}",
        descCn: "",
        autoFix: false,
    },
    {
        code: "ANN002",
        name: "missing-type-args",
        descEn: "Missing type annotation for *{name}",
        descCn: "",
        autoFix: false,
    },
    {
        code: "ANN003",
        name: "missing-type-kwargs",
        descEn: "Missing type annotation for **{name}",
        descCn: "",
        autoFix: false,
    },
    {
        code: "ANN101",
        name: "missing-type-self",
        descEn: "Missing type annotation for {name} in method",
        descCn: "",
        autoFix: false,
    },
    {
        code: "ANN102",
        name: "missing-type-cls",
        descEn: "Missing type annotation for {name} in classmethod",
        descCn: "",
        autoFix: false,
    },
    {
        code: "ANN201",
        name: "missing-return-type-undocumented-public-function",
        descEn: "Missing return type annotation for public function {name}",
        descCn: "",
        autoFix: false,
    },
    {
        code: "ANN202",
        name: "missing-return-type-private-function",
        descEn: "Missing return type annotation for private function {name}",
        descCn: "",
        autoFix: false,
    },
    {
        code: "ANN204",
        name: "missing-return-type-special-method",
        descEn: "Missing return type annotation for special method {name}",
        descCn: "",
        autoFix: true,
    },
    {
        code: "ANN205",
        name: "missing-return-type-static-method",
        descEn: "Missing return type annotation for staticmethod {name}",
        descCn: "",
        autoFix: false,
    },
    {
        code: "ANN206",
        name: "missing-return-type-class-method",
        descEn: "Missing return type annotation for classmethod {name}",
        descCn: "",
        autoFix: false,
    },
    {
        code: "ANN401",
        name: "any-type",
        descEn: "Dynamically typed expressions (typing.Any) are disallowed in {name}",
        descCn: "",
        autoFix: false,
    },

];